home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks ’87 / Source ƒ.sit / Source ƒ / C ƒ / SoundPlay ƒ / SIHuff.C < prev    next >
MacBinary  |  1986-05-24  |  6.6 KB  |  [TEXT/EDIT]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sat May 24 00:19:31 1986, modified Sat May 24 00:19:31 1986, creator Macintosh Edit, type ASCII, 5747 bytes "SIHuff.C" , at 0x16f3 860 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[EDIT]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 08 53 49 48 75 66 66 | 2e 43 00 00 00 00 00 00 |..SIHuff|.C......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 45 44 49 | 54 01 00 00 00 00 00 00 |.TEXTEDI|T.......|
|00000050| 00 00 00 00 00 16 73 00 | 00 03 5c 9a fa f1 d3 9a |......s.|..\.....|
|00000060| fa f1 d3 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 14 af 00 00 |........|........|
|00000080| 23 4f 70 74 69 6f 6e 73 | 20 5a 0d 0d 2f 2f 20 6d |#Options| Z..// m|
|00000090| 6f 64 20 39 20 33 30 20 | 38 35 20 74 73 68 20 2d |od 9 30 |85 tsh -|
|000000a0| 20 64 65 63 6f 64 65 20 | 6f 6e 6c 79 20 76 65 72 | decode |only ver|
|000000b0| 73 69 6f 6e 20 66 6f 72 | 20 70 6c 61 79 69 6e 67 |sion for| playing|
|000000c0| 20 73 6f 75 6e 64 0d 2f | 2f 20 6d 6f 64 20 39 20 | sound./|/ mod 9 |
|000000d0| 31 36 20 38 35 20 74 73 | 68 20 2d 20 63 6f 6d 70 |16 85 ts|h - comp|
|000000e0| 6c 65 74 65 6c 79 20 72 | 65 64 6f 20 49 2f 4f 20 |letely r|edo I/O |
|000000f0| 62 75 66 66 65 72 69 6e | 67 20 74 6f 20 62 65 20 |bufferin|g to be |
|00000100| 63 6f 6e 73 69 73 74 65 | 6e 74 20 77 69 74 68 0d |consiste|nt with.|
|00000110| 2f 2f 09 70 72 65 76 69 | 6f 75 73 20 53 6f 75 6e |//.previ|ous Soun|
|00000120| 64 43 61 70 2c 20 6d 61 | 6b 65 20 73 74 61 72 74 |dCap, ma|ke start|
|00000130| 75 70 20 6f 66 20 63 6f | 6d 70 72 65 73 73 65 64 |up of co|mpressed|
|00000140| 20 66 69 6c 65 20 77 6f | 72 6b 2c 0d 2f 2f 09 65 | file wo|rk,.//.e|
|00000150| 6c 69 6d 69 6e 61 74 65 | 20 4d 41 5a 6c 69 62 3a |liminate| MAZlib:|
|00000160| 42 75 66 49 4f 0d 2f 2f | 20 4d 4f 44 20 30 39 2d |BufIO.//| MOD 09-|
|00000170| 30 31 2d 38 35 20 4d 41 | 5a 20 2d 20 68 75 66 66 |01-85 MA|Z - huff|
|00000180| 6d 61 6e 20 76 61 72 69 | 61 62 6c 65 2d 62 69 74 |man vari|able-bit|
|00000190| 2d 77 69 64 74 68 20 63 | 6f 64 65 0d 2f 2f 09 09 |-width c|ode.//..|
|000001a0| 20 22 20 20 2d 20 66 69 | 6c 65 20 63 6f 6d 70 72 | " - fi|le compr|
|000001b0| 65 73 73 69 6f 6e 20 72 | 6f 75 74 69 6e 65 73 20 |ession r|outines |
|000001c0| 63 72 65 61 74 65 64 0d | 20 0d 23 69 6e 63 6c 75 |created.| .#inclu|
|000001d0| 64 65 20 22 4d 61 63 43 | 64 65 66 73 2e 68 22 0d |de "MacC|defs.h".|
|000001e0| 23 69 6e 63 6c 75 64 65 | 20 22 4d 41 5a 6c 69 62 |#include| "MAZlib|
|000001f0| 2e 68 22 0d 23 69 6e 63 | 6c 75 64 65 20 22 4f 53 |.h".#inc|lude "OS|
|00000200| 69 6f 2e 68 22 0d 23 69 | 6e 63 6c 75 64 65 20 22 |io.h".#i|nclude "|
|00000210| 70 62 44 65 66 73 2e 68 | 22 0d 0d 2f 2f 20 68 75 |pbDefs.h|"..// hu|
|00000220| 66 66 6d 61 6e 20 63 6f | 6d 70 72 65 73 73 69 6f |ffman co|mpressio|
|00000230| 6e 20 6f 66 20 64 65 6c | 74 61 73 2c 20 76 61 6c |n of del|tas, val|
|00000240| 75 65 73 0d 23 64 65 66 | 69 6e 65 20 74 79 70 65 |ues.#def|ine type|
|00000250| 5f 76 61 6c 75 65 20 30 | 0d 23 64 65 66 69 6e 65 |_value 0|.#define|
|00000260| 20 74 79 70 65 5f 64 65 | 6c 74 61 20 31 0d 0d 23 | type_de|lta 1..#|
|00000270| 61 73 6d 0d 09 69 6e 63 | 6c 75 64 65 09 53 79 73 |asm..inc|lude.Sys|
|00000280| 45 71 75 58 2e 44 0d 09 | 69 6e 63 6c 75 64 65 09 |EquX.D..|include.|
|00000290| 4d 61 63 54 72 61 70 73 | 2e 44 0d 23 65 6e 64 61 |MacTraps|.D.#enda|
|000002a0| 73 6d 0d 0d 2f 2f 20 75 | 73 65 64 20 69 6e 20 74 |sm..// u|sed in t|
|000002b0| 68 65 20 66 69 6c 65 0d | 74 79 70 65 64 65 66 20 |he file.|typedef |
|000002c0| 73 74 72 75 63 74 0d 20 | 20 20 20 7b 0d 20 20 20 |struct. | {. |
|000002d0| 20 73 68 6f 72 74 20 69 | 6e 74 20 64 69 63 74 5f | short i|nt dict_|
|000002e0| 6c 65 66 74 73 6f 6e 3b | 0d 20 20 20 20 73 68 6f |leftson;|. sho|
|000002f0| 72 74 20 69 6e 74 20 64 | 69 63 74 5f 72 69 67 68 |rt int d|ict_righ|
|00000300| 74 73 6f 6e 3b 0d 20 20 | 20 20 7d 20 64 69 63 74 |tson;. | } dict|
|00000310| 65 6e 74 3b 0d 0d 2f 2f | 20 74 68 65 20 64 69 63 |ent;..//| the dic|
|00000320| 74 69 6f 6e 61 72 79 20 | 70 61 63 6b 65 64 20 2d |tionary |packed -|
|00000330| 20 70 61 63 6b 65 64 20 | 69 6e 74 6f 20 6f 6e 20 | packed |into on |
|00000340| 77 72 69 74 65 2c 20 75 | 73 65 64 20 64 75 72 69 |write, u|sed duri|
|00000350| 6e 67 20 64 65 63 6f 64 | 65 20 73 74 65 70 0d 64 |ng decod|e step.d|
|00000360| 69 63 74 65 6e 74 20 64 | 69 63 74 69 6f 6e 61 72 |ictent d|ictionar|
|00000370| 79 5b 35 31 31 5d 3b 0d | 0d 2f 2f 20 68 75 66 66 |y[511];.|.// huff|
|00000380| 6d 61 6e 20 74 6f 74 61 | 6c 20 63 6f 75 6e 74 0d |man tota|l count.|
|00000390| 6c 6f 6e 67 20 69 6e 74 | 20 68 75 66 66 63 6f 75 |long int| huffcou|
|000003a0| 6e 74 3b 0d 0d 2f 2f 20 | 49 4f 20 70 61 63 6b 65 |nt;..// |IO packe|
|000003b0| 74 0d 69 6f 50 61 72 61 | 6d 20 68 75 66 66 49 6f |t.ioPara|m huffIo|
|000003c0| 3b 0d 0d 2f 2f 20 6f 70 | 65 6e 20 66 69 6c 65 2c |;..// op|en file,|
|000003d0| 20 72 65 61 64 20 74 68 | 65 20 66 69 6c 65 20 68 | read th|e file h|
|000003e0| 65 61 64 65 72 20 61 6e | 64 20 64 65 63 69 64 65 |eader an|d decide|
|000003f0| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 2e 0d 2f 2f 20 | allocat|ion..// |
|00000400| 72 65 74 75 72 6e 73 20 | 2d 31 20 69 66 20 6e 6f |returns |-1 if no|
|00000410| 74 20 63 6f 6d 70 72 65 | 73 73 65 64 0d 6c 6f 6e |t compre|ssed.lon|
|00000420| 67 20 69 6e 74 20 68 75 | 66 66 6d 61 6e 5f 72 65 |g int hu|ffman_re|
|00000430| 61 64 73 69 7a 65 28 66 | 69 6c 65 6e 61 6d 65 2c |adsize(f|ilename,|
|00000440| 20 72 65 66 6e 75 6d 29 | 0d 20 20 63 68 61 72 20 | refnum)|. char |
|00000450| 2a 66 69 6c 65 6e 61 6d | 65 3b 0d 20 20 73 68 6f |*filenam|e;. sho|
|00000460| 72 74 20 72 65 66 6e 75 | 6d 3b 0d 20 20 20 20 7b |rt refnu|m;. {|
|00000470| 0d 20 20 20 20 6c 6f 6e | 67 20 6c 62 75 66 66 5b |. lon|g lbuff[|
|00000480| 32 5d 3b 0d 0d 20 20 20 | 20 2f 2f 20 6f 70 65 6e |2];.. | // open|
|00000490| 20 74 68 65 20 69 6e 70 | 75 74 20 66 69 6c 65 0d | the inp|ut file.|
|000004a0| 20 20 20 20 68 75 66 66 | 49 6f 2e 69 6f 4e 61 6d | huff|Io.ioNam|
|000004b0| 65 50 74 72 20 3d 20 66 | 69 6c 65 6e 61 6d 65 3b |ePtr = f|ilename;|
|000004c0| 0d 20 20 20 20 68 75 66 | 66 49 6f 2e 69 6f 56 52 |. huf|fIo.ioVR|
|000004d0| 65 66 4e 75 6d 20 3d 20 | 72 65 66 6e 75 6d 3b 09 |efNum = |refnum;.|
|000004e0| 2f 2f 20 64 65 66 61 75 | 6c 74 20 76 6f 6c 75 6d |// defau|lt volum|
|000004f0| 65 0d 20 20 20 20 68 75 | 66 66 49 6f 2e 69 6f 56 |e. hu|ffIo.ioV|
|00000500| 65 72 73 4e 75 6d 20 3d | 20 30 3b 09 2f 2f 20 6e |ersNum =| 0;.// n|
|00000510| 6f 72 6d 61 6c 20 76 65 | 72 73 69 6f 6e 0d 20 20 |ormal ve|rsion. |
|00000520| 20 20 68 75 66 66 49 6f | 2e 69 6f 50 65 72 6d 73 | huffIo|.ioPerms|
|00000530| 73 6e 20 3d 20 31 3b 09 | 2f 2f 20 72 65 61 64 69 |sn = 1;.|// readi|
|00000540| 6e 67 0d 20 20 20 20 68 | 75 66 66 49 6f 2e 69 6f |ng. h|uffIo.io|
|00000550| 4d 69 73 63 20 3d 20 30 | 3b 09 09 2f 2f 20 6e 6f |Misc = 0|;..// no|
|00000560| 20 62 75 66 66 65 72 0d | 20 20 20 20 68 75 66 66 | buffer.| huff|
|00000570| 49 6f 2e 69 6f 52 65 73 | 75 6c 74 20 3d 20 31 3b |Io.ioRes|ult = 1;|
|00000580| 0d 20 20 20 20 50 42 4f | 70 65 6e 28 26 68 75 66 |. PBO|pen(&huf|
|00000590| 66 49 6f 2c 20 66 61 6c | 73 65 29 3b 0d 20 20 20 |fIo, fal|se);. |
|000005a0| 20 69 66 20 28 68 75 66 | 66 49 6f 2e 69 6f 52 65 | if (huf|fIo.ioRe|
|000005b0| 73 75 6c 74 20 3c 20 30 | 29 0d 09 72 65 74 75 72 |sult < 0|)..retur|
|000005c0| 6e 28 68 75 66 66 49 6f | 2e 69 6f 52 65 73 75 6c |n(huffIo|.ioResul|
|000005d0| 74 29 3b 0d 20 20 20 20 | 2f 2f 20 72 65 61 64 20 |t);. |// read |
|000005e0| 74 68 65 20 68 65 61 64 | 65 72 20 28 32 20 6c 6f |the head|er (2 lo|
|000005f0| 6e 67 20 77 6f 72 64 73 | 29 0d 20 20 20 20 68 75 |ng words|). hu|
|00000600| 66 66 49 6f 2e 69 6f 42 | 75 66 66 65 72 20 3d 20 |ffIo.ioB|uffer = |
|00000610| 28 63 68 61 72 20 2a 29 | 6c 62 75 66 66 3b 0d 20 |(char *)|lbuff;. |
|00000620| 20 20 20 68 75 66 66 49 | 6f 2e 69 6f 52 65 71 43 | huffI|o.ioReqC|
|00000630| 6f 75 6e 74 20 3d 20 38 | 3b 09 2f 2f 20 32 20 6c |ount = 8|;.// 2 l|
|00000640| 6f 6e 67 77 6f 72 64 73 | 0d 20 20 20 20 68 75 66 |ongwords|. huf|
|00000650| 66 49 6f 2e 69 6f 50 6f | 73 4d 6f 64 65 20 3d 20 |fIo.ioPo|sMode = |
|00000660| 31 3b 09 2f 2f 20 61 62 | 73 6f 6c 75 74 65 0d 20 |1;.// ab|solute. |
|00000670| 20 20 20 68 75 66 66 49 | 6f 2e 69 6f 50 6f 73 4f | huffI|o.ioPosO|
|00000680| 66 66 73 65 74 20 3d 20 | 30 3b 09 2f 2f 20 66 72 |ffset = |0;.// fr|
|00000690| 6f 6d 20 74 68 65 20 62 | 65 67 69 6e 6e 69 6e 67 |om the b|eginning|
|000006a0| 0d 20 20 20 20 68 75 66 | 66 49 6f 2e 69 6f 52 65 |. huf|fIo.ioRe|
|000006b0| 73 75 6c 74 20 3d 20 31 | 3b 0d 20 20 20 20 50 42 |sult = 1|;. PB|
|000006c0| 52 65 61 64 28 26 68 75 | 66 66 49 6f 2c 20 66 61 |Read(&hu|ffIo, fa|
|000006d0| 6c 73 65 29 3b 0d 20 20 | 20 20 2f 2f 20 72 65 61 |lse);. | // rea|
|000006e0| 64 20 74 68 65 20 63 6f | 6d 70 72 65 73 73 69 6f |d the co|mpressio|
|000006f0| 6e 20 66 69 65 6c 64 2e | 0d 20 20 20 20 69 66 20 |n field.|. if |
|00000700| 28 6c 62 75 66 66 5b 30 | 5d 20 21 3d 20 27 48 43 |(lbuff[0|] != 'HC|
|00000710| 4f 4d 27 29 0d 09 72 65 | 74 75 72 6e 28 2d 31 29 |OM')..re|turn(-1)|
|00000720| 3b 0d 20 20 20 20 68 75 | 66 66 63 6f 75 6e 74 20 |;. hu|ffcount |
|00000730| 3d 20 6c 62 75 66 66 5b | 31 5d 3b 0d 20 20 20 20 |= lbuff[|1];. |
|00000740| 72 65 74 75 72 6e 28 68 | 75 66 66 63 6f 75 6e 74 |return(h|uffcount|
|00000750| 29 3b 0d 20 20 20 20 7d | 0d 0d 68 75 66 66 6d 61 |);. }|..huffma|
|00000760| 6e 5f 63 6c 6f 73 65 28 | 29 0d 20 20 20 20 7b 0d |n_close(|). {.|
|00000770| 20 20 20 20 50 42 43 6c | 6f 73 65 28 26 68 75 66 | PBCl|ose(&huf|
|00000780| 66 49 6f 2c 20 66 61 6c | 73 65 29 3b 0d 20 20 20 |fIo, fal|se);. |
|00000790| 20 7d 0d 0d 2f 2f 20 72 | 65 61 64 20 74 68 65 20 | }..// r|ead the |
|000007a0| 68 75 66 66 6d 61 6e 20 | 66 69 6c 65 20 61 6e 64 |huffman |file and|
|000007b0| 20 75 6e 64 6f 20 69 74 | 20 69 6e 74 6f 20 61 20 | undo it| into a |
|000007c0| 66 6c 61 74 20 73 61 6d | 70 6c 65 20 62 75 66 66 |flat sam|ple buff|
|000007d0| 65 72 0d 2f 2f 20 61 66 | 74 65 72 20 64 6f 69 6e |er.// af|ter doin|
|000007e0| 67 20 68 75 66 66 6d 61 | 6e 5f 72 65 61 64 73 69 |g huffma|n_readsi|
|000007f0| 7a 65 28 29 0d 69 6e 74 | 20 68 75 66 66 6d 61 6e |ze().int| huffman|
|00000800| 5f 69 6e 70 75 74 28 62 | 70 74 72 2c 20 70 73 61 |_input(b|ptr, psa|
|00000810| 6d 70 6c 69 6e 67 2c 20 | 69 6f 62 75 66 66 2c 20 |mpling, |iobuff, |
|00000820| 69 6f 63 6e 74 29 0d 20 | 20 75 6e 73 69 67 6e 65 |iocnt). | unsigne|
|00000830| 64 20 63 68 61 72 20 2a | 62 70 74 72 3b 0d 20 20 |d char *|bptr;. |
|00000840| 6c 6f 6e 67 20 69 6e 74 | 20 2a 70 73 61 6d 70 6c |long int| *psampl|
|00000850| 69 6e 67 3b 0d 20 20 63 | 68 61 72 20 2a 69 6f 62 |ing;. c|har *iob|
|00000860| 75 66 66 3b 0d 20 20 6c | 6f 6e 67 20 69 6e 74 20 |uff;. l|ong int |
|00000870| 69 6f 63 6e 74 3b 0d 20 | 20 20 20 7b 0d 20 20 20 |iocnt;. | {. |
|00000880| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 66 | unsigne|d char f|
|00000890| 69 72 73 74 5f 73 61 6d | 70 6c 65 2c 20 2a 62 75 |irst_sam|ple, *bu|
|000008a0| 66 66 65 72 2c 20 2a 70 | 3b 0d 20 20 20 20 73 68 |ffer, *p|;. sh|
|000008b0| 6f 72 74 20 69 6e 74 20 | 64 69 63 74 73 7a 3b 0d |ort int |dictsz;.|
|000008c0| 20 20 20 20 6c 6f 6e 67 | 20 69 6e 74 20 63 68 65 | long| int che|
|000008d0| 63 6b 73 75 6d 2c 20 69 | 2c 20 63 73 75 6d 2c 20 |cksum, i|, csum, |
|000008e0| 63 6f 75 6e 74 2c 20 74 | 79 70 65 3b 0d 20 20 20 |count, t|ype;. |
|000008f0| 20 6c 6f 6e 67 20 6c 62 | 75 66 66 5b 34 5d 3b 0d | long lb|uff[4];.|
|00000900| 20 20 20 20 63 68 61 72 | 20 74 77 6f 63 5b 32 5d | char| twoc[2]|
|00000910| 3b 0d 0d 20 20 20 20 63 | 6f 75 6e 74 20 3d 20 68 |;.. c|ount = h|
|00000920| 75 66 66 63 6f 75 6e 74 | 3b 0d 20 20 20 20 62 75 |uffcount|;. bu|
|00000930| 66 66 65 72 20 3d 20 62 | 70 74 72 3b 0d 20 20 20 |ffer = b|ptr;. |
|00000940| 20 2f 2f 20 72 65 61 64 | 20 69 6e 20 31 34 20 62 | // read| in 14 b|
|00000950| 79 74 65 73 0d 20 20 20 | 20 68 75 66 66 49 6f 2e |ytes. | huffIo.|
|00000960| 69 6f 42 75 66 66 65 72 | 20 3d 20 28 63 68 61 72 |ioBuffer| = (char|
|00000970| 20 2a 29 6c 62 75 66 66 | 3b 0d 20 20 20 20 68 75 | *)lbuff|;. hu|
|00000980| 66 66 49 6f 2e 69 6f 52 | 65 71 43 6f 75 6e 74 20 |ffIo.ioR|eqCount |
|00000990| 3d 20 31 34 3b 09 2f 2f | 20 33 20 6c 6f 6e 67 77 |= 14;.//| 3 longw|
|000009a0| 6f 72 64 73 2c 20 31 20 | 77 6f 72 64 0d 20 20 20 |ords, 1 |word. |
|000009b0| 20 68 75 66 66 49 6f 2e | 69 6f 50 6f 73 4d 6f 64 | huffIo.|ioPosMod|
|000009c0| 65 20 3d 20 30 3b 09 2f | 2f 20 72 65 6c 61 74 69 |e = 0;./|/ relati|
|000009d0| 76 65 20 74 6f 20 6d 61 | 72 6b 0d 20 20 20 20 50 |ve to ma|rk. P|
|000009e0| 42 52 65 61 64 28 26 68 | 75 66 66 49 6f 2c 20 66 |BRead(&h|uffIo, f|
|000009f0| 61 6c 73 65 29 3b 0d 20 | 20 20 20 63 73 75 6d 20 |alse);. | csum |
|00000a00| 3d 20 6c 62 75 66 66 5b | 30 5d 3b 20 09 2f 2f 20 |= lbuff[|0]; .// |
|00000a10| 72 65 61 64 20 74 68 65 | 20 63 68 65 63 6b 73 75 |read the| checksu|
|00000a20| 6d 0d 20 20 20 20 74 79 | 70 65 20 3d 20 6c 62 75 |m. ty|pe = lbu|
|00000a30| 66 66 5b 31 5d 3b 09 2f | 2f 20 72 65 61 64 20 74 |ff[1];./|/ read t|
|00000a40| 68 65 20 63 6f 6d 70 72 | 65 73 73 69 6f 6e 20 74 |he compr|ession t|
|00000a50| 79 70 65 20 28 61 6c 77 | 61 79 73 20 64 65 6c 74 |ype (alw|ays delt|
|00000a60| 61 29 0d 20 20 20 20 2a | 70 73 61 6d 70 6c 69 6e |a). *|psamplin|
|00000a70| 67 20 3d 20 6c 62 75 66 | 66 5b 32 5d 3b 20 2f 2f |g = lbuf|f[2]; //|
|00000a80| 20 72 65 74 75 72 6e 20 | 74 68 65 20 73 61 6d 70 | return |the samp|
|00000a90| 6c 69 6e 67 20 72 61 74 | 65 0d 20 20 20 20 2f 2f |ling rat|e. //|
|00000aa0| 20 72 65 61 64 20 74 68 | 65 20 68 75 66 66 6d 61 | read th|e huffma|
|00000ab0| 6e 20 64 69 63 74 69 6f | 6e 61 72 79 20 75 70 20 |n dictio|nary up |
|00000ac0| 66 72 6f 6e 74 20 69 6e | 74 6f 20 27 64 69 63 74 |front in|to 'dict|
|00000ad0| 69 6f 6e 61 72 79 27 0d | 20 20 20 20 64 69 63 74 |ionary'.| dict|
|00000ae0| 73 7a 20 3d 20 2a 28 73 | 68 6f 72 74 20 2a 29 28 |sz = *(s|hort *)(|
|00000af0| 26 6c 62 75 66 66 5b 33 | 5d 29 3b 20 2f 2f 20 72 |&lbuff[3|]); // r|
|00000b00| 65 61 64 20 64 69 63 74 | 69 6f 6e 61 72 79 20 73 |ead dict|ionary s|
|00000b10| 69 7a 65 0d 20 20 20 20 | 2f 2f 20 72 65 61 64 20 |ize. |// read |
|00000b20| 69 6e 20 74 68 65 20 64 | 69 63 74 69 6f 6e 61 72 |in the d|ictionar|
|00000b30| 79 0d 20 20 20 20 68 75 | 66 66 49 6f 2e 69 6f 42 |y. hu|ffIo.ioB|
|00000b40| 75 66 66 65 72 20 3d 20 | 28 63 68 61 72 20 2a 29 |uffer = |(char *)|
|00000b50| 64 69 63 74 69 6f 6e 61 | 72 79 3b 0d 20 20 20 20 |dictiona|ry;. |
|00000b60| 68 75 66 66 49 6f 2e 69 | 6f 52 65 71 43 6f 75 6e |huffIo.i|oReqCoun|
|00000b70| 74 20 3d 20 73 69 7a 65 | 6f 66 28 64 69 63 74 65 |t = size|of(dicte|
|00000b80| 6e 74 29 2a 64 69 63 74 | 73 7a 3b 09 2f 2f 20 73 |nt)*dict|sz;.// s|
|00000b90| 69 7a 65 20 74 6f 20 72 | 65 61 64 0d 20 20 20 20 |ize to r|ead. |
|00000ba0| 68 75 66 66 49 6f 2e 69 | 6f 50 6f 73 4d 6f 64 65 |huffIo.i|oPosMode|
|00000bb0| 20 3d 20 30 3b 09 2f 2f | 20 72 65 6c 61 74 69 76 | = 0;.//| relativ|
|00000bc0| 65 20 74 6f 20 6d 61 72 | 6b 0d 20 20 20 20 50 42 |e to mar|k. PB|
|00000bd0| 52 65 61 64 28 26 68 75 | 66 66 49 6f 2c 20 66 61 |Read(&hu|ffIo, fa|
|00000be0| 6c 73 65 29 3b 0d 20 20 | 20 20 2f 2f 20 70 72 65 |lse);. | // pre|
|00000bf0| 73 68 69 66 74 20 64 69 | 63 74 69 6f 6e 61 72 79 |shift di|ctionary|
|00000c00| 20 65 6e 74 72 69 65 73 | 20 74 6f 20 73 70 65 65 | entries| to spee|
|00000c10| 64 20 70 72 6f 63 65 73 | 73 69 6e 67 0d 20 20 20 |d proces|sing. |
|00000c20| 20 66 6f 72 20 28 69 3d | 30 3b 20 69 3c 35 31 31 | for (i=|0; i<511|
|00000c30| 3b 20 69 2b 2b 29 0d 20 | 20 20 20 20 20 69 66 20 |; i++). | if |
|00000c40| 28 64 69 63 74 69 6f 6e | 61 72 79 5b 69 5d 2e 64 |(diction|ary[i].d|
|00000c50| 69 63 74 5f 6c 65 66 74 | 73 6f 6e 20 3e 3d 20 30 |ict_left|son >= 0|
|00000c60| 29 0d 09 7b 0d 09 64 69 | 63 74 69 6f 6e 61 72 79 |)..{..di|ctionary|
|00000c70| 5b 69 5d 2e 64 69 63 74 | 5f 6c 65 66 74 73 6f 6e |[i].dict|_leftson|
|00000c80| 20 3c 3c 3d 20 32 3b 0d | 09 64 69 63 74 69 6f 6e | <<= 2;.|.diction|
|00000c90| 61 72 79 5b 69 5d 2e 64 | 69 63 74 5f 72 69 67 68 |ary[i].d|ict_righ|
|00000ca0| 74 73 6f 6e 20 3c 3c 3d | 20 32 3b 0d 09 7d 0d 20 |tson <<=| 2;..}. |
|00000cb0| 20 20 20 2f 2f 20 72 65 | 61 64 20 66 69 72 73 74 | // re|ad first|
|00000cc0| 20 73 61 6d 70 6c 65 20 | 69 6e 0d 20 20 20 20 70 | sample |in. p|
|00000cd0| 20 3d 20 28 75 6e 73 69 | 67 6e 65 64 20 63 68 61 | = (unsi|gned cha|
|00000ce0| 72 20 2a 29 6c 62 75 66 | 66 3b 0d 20 20 20 20 68 |r *)lbuf|f;. h|
|00000cf0| 75 66 66 49 6f 2e 69 6f | 42 75 66 66 65 72 20 3d |uffIo.io|Buffer =|
|00000d00| 20 28 63 68 61 72 20 2a | 29 70 3b 0d 20 20 20 20 | (char *|)p;. |
|00000d10| 68 75 66 66 49 6f 2e 69 | 6f 52 65 71 43 6f 75 6e |huffIo.i|oReqCoun|
|00000d20| 74 20 3d 20 32 3b 09 2f | 2f 20 32 20 63 68 61 72 |t = 2;./|/ 2 char|
|00000d30| 61 63 74 65 72 73 0d 20 | 20 20 20 68 75 66 66 49 |acters. | huffI|
|00000d40| 6f 2e 69 6f 50 6f 73 4d | 6f 64 65 20 3d 20 30 3b |o.ioPosM|ode = 0;|
|00000d50| 09 2f 2f 20 72 65 6c 61 | 74 69 76 65 20 74 6f 20 |.// rela|tive to |
|00000d60| 6d 61 72 6b 0d 20 20 20 | 20 50 42 52 65 61 64 28 |mark. | PBRead(|
|00000d70| 26 68 75 66 66 49 6f 2c | 20 66 61 6c 73 65 29 3b |&huffIo,| false);|
|00000d80| 0d 20 20 20 20 70 2b 2b | 3b 20 20 20 20 2f 2f 20 |. p++|; // |
|00000d90| 69 67 6e 6f 72 20 70 61 | 64 20 62 79 74 65 20 74 |ignor pa|d byte t|
|00000da0| 77 6f 63 5b 30 5d 0d 20 | 20 20 20 66 69 72 73 74 |woc[0]. | first|
|00000db0| 5f 73 61 6d 70 6c 65 20 | 3d 20 2a 70 2b 2b 3b 0d |_sample |= *p++;.|
|00000dc0| 20 20 20 20 2f 2f 20 70 | 72 6f 63 65 73 73 20 72 | // p|rocess r|
|00000dd0| 65 73 74 20 6f 66 20 62 | 75 66 66 65 72 0d 20 20 |est of b|uffer. |
|00000de0| 20 20 63 68 65 63 6b 73 | 75 6d 20 3d 20 75 6e 68 | checks|um = unh|
|00000df0| 75 66 66 5f 62 75 66 66 | 65 72 28 62 75 66 66 65 |uff_buff|er(buffe|
|00000e00| 72 2c 20 63 6f 75 6e 74 | 2c 20 66 69 72 73 74 5f |r, count|, first_|
|00000e10| 73 61 6d 70 6c 65 2c 20 | 69 6f 62 75 66 66 2c 20 |sample, |iobuff, |
|00000e20| 69 6f 63 6e 74 29 3b 0d | 20 20 20 20 2f 2f 20 74 |iocnt);.| // t|
|00000e30| 65 73 74 20 74 68 65 20 | 63 68 65 63 6b 73 75 6d |est the |checksum|
|00000e40| 0d 20 20 20 20 69 66 20 | 28 63 68 65 63 6b 73 75 |. if |(checksu|
|00000e50| 6d 20 21 3d 20 63 73 75 | 6d 29 0d 09 72 65 74 75 |m != csu|m)..retu|
|00000e60| 72 6e 28 2d 31 29 3b 0d | 20 20 20 20 2f 2f 20 63 |rn(-1);.| // c|
|00000e70| 68 65 63 6b 73 75 6d 20 | 4f 4b 2c 20 72 65 61 64 |hecksum |OK, read|
|00000e80| 20 63 6f 6d 70 72 65 73 | 73 65 64 20 72 65 61 64 | compres|sed read|
|00000e90| 69 6e 0d 20 20 20 20 72 | 65 74 75 72 6e 28 30 29 |in. r|eturn(0)|
|00000ea0| 3b 0d 20 20 20 20 7d 0d | 0d 2f 2f 20 68 75 66 66 |;. }.|.// huff|
|00000eb0| 6d 61 6e 20 64 65 63 6f | 64 65 20 73 74 65 70 20 |man deco|de step |
|00000ec0| 28 72 65 61 64 73 20 61 | 6e 64 20 64 65 63 6f 64 |(reads a|nd decod|
|00000ed0| 65 73 20 64 61 74 61 29 | 0d 6c 6f 6e 67 20 69 6e |es data)|.long in|
|00000ee0| 74 20 75 6e 68 75 66 66 | 5f 62 75 66 66 65 72 28 |t unhuff|_buffer(|
|00000ef0| 62 75 66 66 65 72 2c 63 | 6f 75 6e 74 2c 66 69 72 |buffer,c|ount,fir|
|00000f00| 73 74 5f 73 61 6d 70 6c | 65 2c 69 6f 62 75 66 66 |st_sampl|e,iobuff|
|00000f10| 65 72 2c 69 6f 63 6e 74 | 29 0d 20 20 75 6e 73 69 |er,iocnt|). unsi|
|00000f20| 67 6e 65 64 20 63 68 61 | 72 20 2a 62 75 66 66 65 |gned cha|r *buffe|
|00000f30| 72 3b 09 2f 2f 20 44 30 | 0d 20 20 6c 6f 6e 67 20 |r;.// D0|. long |
|00000f40| 69 6e 74 20 63 6f 75 6e | 74 3b 09 09 2f 2f 20 44 |int coun|t;..// D|
|00000f50| 31 0d 20 20 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |1. unsi|gned cha|
|00000f60| 72 20 66 69 72 73 74 5f | 73 61 6d 70 6c 65 3b 09 |r first_|sample;.|
|00000f70| 2f 2f 20 44 32 0d 20 20 | 63 68 61 72 20 2a 69 6f |// D2. |char *io|
|00000f80| 62 75 66 66 65 72 3b 09 | 09 2f 2f 20 44 33 0d 20 |buffer;.|.// D3. |
|00000f90| 20 6c 6f 6e 67 20 69 6e | 74 20 69 6f 63 6e 74 3b | long in|t iocnt;|
|00000fa0| 09 09 2f 2f 20 44 34 0d | 20 20 20 20 7b 0d 23 61 |..// D4.| {.#a|
|00000fb0| 73 6d 0d 69 6f 63 6e 74 | 09 45 51 55 09 2d 34 0d |sm.iocnt|.EQU.-4.|
|00000fc0| 69 6f 62 75 66 66 09 45 | 51 55 09 2d 38 0d 73 74 |iobuff.E|QU.-8.st|
|00000fd0| 6b 73 69 7a 09 45 51 55 | 09 2d 31 32 0d 0d 09 4c |ksiz.EQU|.-12...L|
|00000fe0| 49 4e 4b 09 41 36 2c 23 | 73 74 6b 73 69 7a 0d 09 |INK.A6,#|stksiz..|
|00000ff0| 4d 4f 56 45 4d 2e 4c 09 | 44 31 2d 44 37 2f 41 30 |MOVEM.L.|D1-D7/A0|
|00001000| 2d 41 34 2c 2d 28 53 50 | 29 0d 09 4d 4f 56 45 2e |-A4,-(SP|)..MOVE.|
|00001010| 4c 09 44 33 2c 69 6f 62 | 75 66 66 28 41 36 29 09 |L.D3,iob|uff(A6).|
|00001020| 3b 73 61 76 65 20 49 2f | 4f 20 62 75 66 66 65 72 |;save I/|O buffer|
|00001030| 0d 09 4d 4f 56 45 2e 4c | 09 44 34 2c 69 6f 63 6e |..MOVE.L|.D4,iocn|
|00001040| 74 28 41 36 29 09 3b 73 | 61 76 65 20 49 2f 4f 20 |t(A6).;s|ave I/O |
|00001050| 62 75 66 66 65 72 20 73 | 69 7a 65 0d 09 4d 4f 56 |buffer s|ize..MOV|
|00001060| 45 2e 4c 09 44 30 2c 41 | 30 09 09 3b 20 4f 55 54 |E.L.D0,A|0..; OUT|
|00001070| 50 55 54 20 50 4f 49 4e | 54 45 52 20 54 4f 20 41 |PUT POIN|TER TO A|
|00001080| 30 0d 09 4d 4f 56 45 2e | 42 09 44 32 2c 28 41 30 |0..MOVE.|B.D2,(A0|
|00001090| 29 2b 09 3b 20 4f 55 54 | 50 55 54 20 46 49 52 53 |)+.; OUT|PUT FIRS|
|000010a0| 54 20 53 41 4d 50 4c 45 | 0d 09 53 55 42 51 2e 4c |T SAMPLE|..SUBQ.L|
|000010b0| 09 23 31 2c 44 31 09 09 | 3b 20 44 45 43 52 45 4d |.#1,D1..|; DECREM|
|000010c0| 45 4e 54 20 43 4f 55 4e | 54 0d 09 4d 4f 56 45 2e |ENT COUN|T..MOVE.|
|000010d0| 4c 09 44 31 2c 44 37 09 | 09 3b 20 49 4e 54 4f 20 |L.D1,D7.|.; INTO |
|000010e0| 52 37 0d 09 4d 4f 56 45 | 51 09 23 30 2c 44 30 0d |R7..MOVE|Q.#0,D0.|
|000010f0| 09 4d 4f 56 45 2e 4c 09 | 44 30 2c 41 33 09 09 3b |.MOVE.L.|D0,A3..;|
|00001100| 20 5a 45 52 4f 20 4c 4f | 4e 47 57 4f 52 44 20 43 | ZERO LO|NGWORD C|
|00001110| 48 45 43 4b 53 55 4d 0d | 3b 20 50 4f 49 4e 54 20 |HECKSUM.|; POINT |
|00001120| 54 4f 20 44 49 43 54 49 | 4f 4e 41 52 59 20 52 4f |TO DICTI|ONARY RO|
|00001130| 4f 54 20 2d 20 52 45 41 | 44 59 20 46 4f 52 20 50 |OT - REA|DY FOR P|
|00001140| 41 52 53 45 0d 09 4c 45 | 41 09 64 69 63 74 69 6f |ARSE..LE|A.dictio|
|00001150| 6e 61 72 79 28 41 35 29 | 2c 41 32 0d 09 4d 4f 56 |nary(A5)|,A2..MOV|
|00001160| 45 51 09 23 30 2c 44 34 | 09 09 3b 20 44 49 43 54 |EQ.#0,D4|..; DICT|
|00001170| 49 4f 4e 41 52 59 20 43 | 55 52 52 45 4e 54 20 50 |IONARY C|URRENT P|
|00001180| 4f 49 4e 54 45 52 0d 09 | 42 52 41 2e 53 09 42 55 |OINTER..|BRA.S.BU|
|00001190| 46 52 45 41 44 09 09 3b | 20 6a 75 6d 70 20 69 6e |FREAD..;| jump in|
|000011a0| 74 6f 20 6c 6f 6f 70 09 | 0d 0d 3b 20 70 72 6f 63 |to loop.|..; proc|
|000011b0| 65 73 73 20 61 20 62 69 | 74 20 61 6e 64 20 62 72 |ess a bi|t and br|
|000011c0| 61 6e 63 68 20 66 75 72 | 74 68 65 72 20 69 6e 74 |anch fur|ther int|
|000011d0| 6f 20 48 75 66 66 6d 61 | 6e 20 74 72 65 65 0d 42 |o Huffma|n tree.B|
|000011e0| 49 54 4c 50 3a 09 4c 53 | 4c 2e 4c 09 23 31 2c 44 |ITLP:.LS|L.L.#1,D|
|000011f0| 35 09 09 3b 20 53 48 49 | 46 54 20 4f 56 45 52 20 |5..; SHI|FT OVER |
|00001200| 31 20 42 49 54 0d 09 42 | 43 43 2e 53 09 5a 45 52 |1 BIT..B|CC.S.ZER|
|00001210| 4f 42 49 54 09 09 3b 20 | 42 52 41 4e 43 48 20 49 |OBIT..; |BRANCH I|
|00001220| 46 20 4c 45 46 54 20 53 | 4f 4e 0d 09 41 44 44 51 |F LEFT S|ON..ADDQ|
|00001230| 2e 57 09 23 32 2c 44 34 | 09 09 3b 20 50 4f 49 4e |.W.#2,D4|..; POIN|
|00001240| 54 20 54 4f 20 52 49 47 | 48 54 20 53 4f 4e 0d 5a |T TO RIG|HT SON.Z|
|00001250| 45 52 4f 42 49 54 3a 20 | 4d 4f 56 45 2e 57 09 30 |EROBIT: |MOVE.W.0|
|00001260| 28 41 32 2c 44 34 2e 57 | 29 2c 44 34 09 3b 20 4c |(A2,D4.W|),D4.; L|
|00001270| 4f 41 44 20 53 4f 4e 0d | 09 4d 4f 56 45 2e 57 09 |OAD SON.|.MOVE.W.|
|00001280| 30 28 41 32 2c 44 34 2e | 57 29 2c 44 30 09 3b 20 |0(A2,D4.|W),D0.; |
|00001290| 43 48 45 43 4b 20 46 4f | 52 20 4c 45 41 46 0d 09 |CHECK FO|R LEAF..|
|000012a0| 44 42 4d 49 09 44 33 2c | 42 49 54 4c 50 0d 09 42 |DBMI.D3,|BITLP..B|
|000012b0| 47 45 2e 53 09 42 55 46 | 57 44 09 09 3b 20 54 45 |GE.S.BUF|WD..; TE|
|000012c0| 53 54 20 46 4f 52 20 42 | 49 54 20 43 4f 55 4e 54 |ST FOR B|IT COUNT|
|000012d0| 45 52 20 45 58 50 49 52 | 45 44 0d 3b 20 61 74 20 |ER EXPIR|ED.; at |
|000012e0| 65 6e 64 20 6f 66 20 68 | 75 66 66 6d 61 6e 20 65 |end of h|uffman e|
|000012f0| 6e 63 6f 64 69 6e 67 2c | 20 73 75 6d 20 74 68 65 |ncoding,| sum the|
|00001300| 20 64 65 6c 74 61 20 61 | 6e 64 20 6f 75 74 70 75 | delta a|nd outpu|
|00001310| 74 20 63 68 61 72 0d 09 | 41 44 44 2e 57 09 32 28 |t char..|ADD.W.2(|
|00001320| 41 32 2c 44 34 2e 57 29 | 2c 44 32 09 3b 20 43 4f |A2,D4.W)|,D2.; CO|
|00001330| 4d 50 55 54 45 20 4e 45 | 58 54 20 43 48 41 52 41 |MPUTE NE|XT CHARA|
|00001340| 43 54 45 52 0d 09 4d 4f | 56 45 2e 42 09 44 32 2c |CTER..MO|VE.B.D2,|
|00001350| 28 41 30 29 2b 09 3b 20 | 4f 55 54 50 55 54 20 4e |(A0)+.; |OUTPUT N|
|00001360| 45 58 54 20 53 41 4d 50 | 4c 45 0d 3b 20 70 72 65 |EXT SAMP|LE.; pre|
|00001370| 70 61 72 65 20 66 6f 72 | 20 6e 65 78 74 20 73 61 |pare for| next sa|
|00001380| 6d 70 6c 65 0d 09 4d 4f | 56 45 51 09 23 30 2c 44 |mple..MO|VEQ.#0,D|
|00001390| 34 09 09 3b 20 44 49 43 | 54 49 4f 4e 41 52 59 20 |4..; DIC|TIONARY |
|000013a0| 43 55 52 52 45 4e 54 20 | 50 4f 49 4e 54 45 52 0d |CURRENT |POINTER.|
|000013b0| 09 53 55 42 51 2e 4c 09 | 23 31 2c 44 37 09 09 3b |.SUBQ.L.|#1,D7..;|
|000013c0| 20 44 4f 4e 45 20 43 4f | 4c 4c 45 43 54 49 4e 47 | DONE CO|LLECTING|
|000013d0| 3f 0d 09 42 4c 45 2e 53 | 09 45 4f 42 4c 50 0d 09 |?..BLE.S|.EOBLP..|
|000013e0| 54 53 54 2e 57 09 44 33 | 0d 09 42 4d 49 2e 53 09 |TST.W.D3|..BMI.S.|
|000013f0| 42 55 46 57 44 0d 3b 20 | 6c 6f 6f 70 20 74 6f 20 |BUFWD.; |loop to |
|00001400| 6e 65 78 74 20 62 69 74 | 0d 42 49 54 43 4e 54 3a |next bit|.BITCNT:|
|00001410| 09 44 42 46 09 44 33 2c | 42 49 54 4c 50 09 3b 20 |.DBF.D3,|BITLP.; |
|00001420| 4e 45 58 54 20 42 49 54 | 20 46 52 4f 4d 20 49 4e |NEXT BIT| FROM IN|
|00001430| 50 55 54 0d 0d 3b 20 47 | 45 54 20 41 4e 4f 54 48 |PUT..; G|ET ANOTH|
|00001440| 45 52 20 4c 4f 4e 47 20 | 46 52 4f 4d 20 54 48 45 |ER LONG |FROM THE|
|00001450| 20 49 4e 50 55 54 20 42 | 55 46 46 45 52 0d 42 55 | INPUT B|UFFER.BU|
|00001460| 46 57 44 3a 09 53 55 42 | 51 2e 4c 09 23 34 2c 44 |FWD:.SUB|Q.L.#4,D|
|00001470| 36 09 09 3b 20 77 65 20 | 70 72 6f 63 65 73 73 20 |6..; we |process |
|00001480| 34 20 62 79 74 65 73 20 | 61 74 20 61 20 74 69 6d |4 bytes |at a tim|
|00001490| 65 0d 09 42 47 54 2e 53 | 09 42 55 46 47 4f 09 09 |e..BGT.S|.BUFGO..|
|000014a0| 3b 20 4e 4f 20 52 45 46 | 49 4c 4c 20 4e 45 45 44 |; NO REF|ILL NEED|
|000014b0| 45 44 0d 0d 3b 20 52 45 | 41 44 20 41 4e 4f 54 48 |ED..; RE|AD ANOTH|
|000014c0| 45 52 20 42 55 46 46 45 | 52 20 49 4e 0d 42 55 46 |ER BUFFE|R IN.BUF|
|000014d0| 52 45 41 44 3a 20 4d 4f | 56 45 4d 2e 4c 20 41 30 |READ: MO|VEM.L A0|
|000014e0| 2f 44 30 2d 44 32 2c 2d | 28 53 50 29 20 3b 73 61 |/D0-D2,-|(SP) ;sa|
|000014f0| 76 65 20 61 63 27 73 0d | 09 4c 45 41 09 68 75 66 |ve ac's.|.LEA.huf|
|00001500| 66 49 6f 28 41 35 29 2c | 41 30 09 3b 67 65 74 20 |fIo(A5),|A0.;get |
|00001510| 6f 75 72 20 70 61 63 6b | 65 74 0d 09 4d 4f 56 45 |our pack|et..MOVE|
|00001520| 41 2e 4c 09 69 6f 62 75 | 66 66 28 41 36 29 2c 41 |A.L.iobu|ff(A6),A|
|00001530| 31 09 3b 72 65 73 65 74 | 20 62 75 66 66 65 72 20 |1.;reset| buffer |
|00001540| 70 74 72 0d 09 4d 4f 56 | 45 2e 4c 09 69 6f 63 6e |ptr..MOV|E.L.iocn|
|00001550| 74 28 41 36 29 2c 44 36 | 09 3b 72 65 73 65 74 20 |t(A6),D6|.;reset |
|00001560| 62 75 66 66 65 72 20 63 | 6f 75 6e 74 0d 09 4d 4f |buffer c|ount..MO|
|00001570| 56 45 2e 4c 09 41 31 2c | 69 6f 42 75 66 66 65 72 |VE.L.A1,|ioBuffer|
|00001580| 28 41 30 29 09 3b 67 65 | 74 20 62 75 66 66 65 72 |(A0).;ge|t buffer|
|00001590| 0d 09 4d 4f 56 45 2e 4c | 09 44 36 2c 69 6f 52 65 |..MOVE.L|.D6,ioRe|
|000015a0| 71 43 6f 75 6e 74 28 41 | 30 29 20 3b 67 65 74 20 |qCount(A|0) ;get |
|000015b0| 72 65 71 75 65 73 74 65 | 64 20 63 6f 75 6e 74 0d |requeste|d count.|
|000015c0| 09 43 4c 52 2e 57 09 69 | 6f 50 6f 73 4d 6f 64 65 |.CLR.W.i|oPosMode|
|000015d0| 28 41 30 29 09 3b 72 65 | 6c 61 74 69 76 65 20 70 |(A0).;re|lative p|
|000015e0| 6f 73 69 74 69 6f 6e 69 | 6e 67 0d 09 5f 52 65 61 |ositioni|ng.._Rea|
|000015f0| 64 0d 09 4d 4f 56 45 4d | 2e 4c 09 28 53 50 29 2b |d..MOVEM|.L.(SP)+|
|00001600| 2c 41 30 2f 44 30 2d 44 | 32 09 3b 72 65 73 74 6f |,A0/D0-D|2.;resto|
|00001610| 72 65 20 61 63 27 73 0d | 09 0d 42 55 46 47 4f 3a |re ac's.|..BUFGO:|
|00001620| 09 4d 4f 56 45 2e 4c 09 | 28 41 31 29 2b 2c 44 35 |.MOVE.L.|(A1)+,D5|
|00001630| 0d 09 41 44 44 2e 4c 09 | 44 35 2c 41 33 09 09 3b |..ADD.L.|D5,A3..;|
|00001640| 20 55 50 44 41 54 45 20 | 43 48 45 43 4b 53 55 4d | UPDATE |CHECKSUM|
|00001650| 0d 09 4d 4f 56 45 51 09 | 23 33 31 2c 44 33 09 09 |..MOVEQ.|#31,D3..|
|00001660| 3b 20 42 49 54 53 20 49 | 4e 20 4c 4f 4e 47 20 28 |; BITS I|N LONG (|
|00001670| 2d 31 20 46 4f 52 20 44 | 42 46 29 0d 09 42 52 41 |-1 FOR D|BF)..BRA|
|00001680| 2e 53 09 42 49 54 4c 50 | 0d 0d 3b 20 41 4c 4c 20 |.S.BITLP|..; ALL |
|00001690| 44 4f 4e 45 0d 45 4f 42 | 4c 50 3a 09 4d 4f 56 45 |DONE.EOB|LP:.MOVE|
|000016a0| 2e 4c 09 41 33 2c 44 30 | 09 09 3b 20 52 45 54 55 |.L.A3,D0|..; RETU|
|000016b0| 52 4e 20 43 48 45 43 4b | 53 55 4d 0d 09 4d 4f 56 |RN CHECK|SUM..MOV|
|000016c0| 45 4d 2e 4c 09 28 53 50 | 29 2b 2c 44 31 2d 44 37 |EM.L.(SP|)+,D1-D7|
|000016d0| 2f 41 30 2d 41 34 0d 09 | 55 4e 4c 4b 09 41 36 0d |/A0-A4..|UNLK.A6.|
|000016e0| 09 52 54 53 0d 23 65 6e | 64 61 73 6d 0d 20 20 20 |.RTS.#en|dasm. |
|000016f0| 20 7d 0d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 | }......|........|
|00001700| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 02 46 |........|.......F|
|00001710| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00001720| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00001730| 08 53 49 48 75 66 66 2e | 43 00 02 00 00 00 54 45 |.SIHuff.|C.....TE|
|00001740| 58 54 45 44 49 54 01 00 | ff ff ff ff 00 00 00 00 |XTEDIT..|........|
|00001750| 00 00 54 45 58 54 45 44 | 49 54 01 00 ff ff ff ff |..TEXTED|IT......|
|00001760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001770| 00 00 99 ac ec 2f 00 00 | 16 73 00 00 03 5c ff ff |...../..|.s...\..|
|00001780| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00001790| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000017a0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000017b0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000017c0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000017d0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000017e0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000017f0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00001800| 00 00 00 0a 00 09 06 4d | 6f 6e 61 63 6f 56 00 00 |.......M|onacoV..|
|00001810| 00 04 00 06 00 08 00 00 | 01 00 00 00 01 16 00 00 |........|........|
|00001820| 00 16 00 00 02 46 00 00 | cc 20 00 98 00 00 00 1c |.....F..|. ......|
|00001830| 00 46 00 01 45 46 4e 54 | 00 00 00 12 45 54 41 42 |.F..EFNT|....ETAB|
|00001840| 00 00 00 1e 03 eb 00 00 | 00 00 00 00 00 01 6a 36 |........|......j6|
|00001850| 03 ec 01 00 00 00 00 0e | 00 01 6a 52 ff ff ff ff |........|..jR....|
|00001860| ff ff ff ff 00 40 01 aa | 00 40 01 ac 00 40 01 ae |.....@..|.@...@..|
|00001870| 00 40 01 b0 00 40 01 b2 | 00 40 01 b4 00 40 01 b6 |.@...@..|.@...@..|
|00001880| 00 40 01 b8 00 40 10 18 | 00 40 01 bc 00 40 01 be |.@...@..|.@...@..|
|00001890| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000018a0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000018b0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000018c0| 00 40 0b 94 00 40 0b bc | 00 40 0b ec 00 40 01 c0 |.@...@..|.@...@..|
|000018d0| 00 40 01 c0 00 40 01 c0 | 00 40 01 c0 00 40 01 be |.@...@..|.@...@..|
|000018e0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000018f0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001900| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001910| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001920| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001930| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001940| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001950| 00 40 01 be 00 40 01 be | 00 40 01 be ff ff ff ff |.@...@..|.@......|
|00001960| ff ff ff ff 00 40 01 aa | 00 40 01 ac 00 40 01 ae |.....@..|.@...@..|
|00001970| 00 40 01 b0 00 40 01 b2 | 00 40 01 b4 00 40 01 b6 |.@...@..|.@...@..|
|00001980| 00 40 01 b8 00 40 10 18 | 00 40 01 bc 00 40 01 be |.@...@..|.@...@..|
|00001990| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000019a0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000019b0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000019c0| 00 40 0b 94 00 40 0b bc | 00 40 0b ec 00 40 01 c0 |.@...@..|.@...@..|
|000019d0| 00 40 01 c0 00 40 01 c0 | 00 40 01 c0 00 40 01 be |.@...@..|.@...@..|
|000019e0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|000019f0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001a00| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001a10| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001a20| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001a30| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001a40| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..|
|00001a50| 00 40 01 be 00 40 01 be | 00 40 01 be 00 00 00 00 |.@...@..|.@......|
|00001a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001a70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+